function Person(firstName, lastName) {
    //判断是否是使用new的方式来调用的函数

    // //过去的判断方式
    // if (!(this instanceof Person)) {
    //     throw new Error("该函数没有使用new来调用")
    // }

    if (new.target === undefined) {  // 让函数只能使用new关键字调用
        throw new Error("该函数没有使用new来调用") // 创建错误对象并抛出到控制台
    }
    
    this.firstName = firstName;
    this.lastName = lastName;
    this.fullName = `${firstName} ${lastName}`;
}

const p1 = new Person("袁", "进");
console.log(p1)

// const p2 = Person("袁", "进");
// console.log(p2);

const p3 = Person.call(p1, "袁", "进") // 过去的做法可以被这样钻空子
console.log(p3);

